RasterExport Module

History

current version 1.0 - 27th March 2024

version date comment
1.0 27/Mar/2024 Original code

License

license: GNU GPL http://www.gnu.org/licenses/

Module Description

relevant internal variables are aggregated in time and space by changing raster resolution and/or spatial reference system, and written to output. Raster maps can be used for subsequent elaboration like for example for computing indexes like
Standardized Precipitation Index (SPI), or for using them as input to difefrent models. The user provides a list of variables to be processed and exported in the configuration file like in the following example

 # configure variables for raster export

 time = 0 23 * * *

 folder = ./results/raster_maps/

 [map-template]
   file = ./data/map_template.asc
   format = esri-ascii
   epsg = 32633

 [soil-balance]
   soil-moisture = 1
   runoff = 1
   infiltration = 1
   percolation = 1
   actual-ET = 1
   potential-ET = 1

 [meteo]
   precipitation = 1
   temperature = 1
   relative-humidity = 0
   solar-radiation = 0
   net-radiation = 0
   wind-speed = 0

 [snow]
   snow-water-equivalent = 1

All variables marked by 1 are elaborated and exported. When one variable is marked by 1 but it is not allocated because not computed by the FEST model according to options defined in the configuration files, value is not exported. For example, if user set to export wind-speed but windspeed is not used in the current simulation, raster maps of windspeed are not written to output folder. Currently maps are exported in esri-ascii format, one map for each variable and for each time step.

Variables that can be exported, description, and unit are listed in the following table.

variable Description Unit
precipitation Precipitation fallen in the time step from the last exportation mm
temperature Air temperature of the current time step fallen in 24 hours Celsius degree
relative-humidity Air relative humidity of the current time step % (0-100)
solar-radiation Solar radiation of the current time step w/m²
net-radiation Net radiation of the current time step w/m²
wind-speed Wind speed of the current time step m/s
snow-water-equivalent Snow water equivalent of the current time step mm
soil-moisture Soil moisture of the current time step -
runoff Runoff of the current time step mm
infiltration Infiltration into soil of the current time step mm
percolation Deep percolation out of transmission zone of the current time step mm
actual-ET Actual evapotranspiration of the current time step mm
potential-ET Potential evapotranspiration of the current time step mm

The name of output files is the concatenation of result folder name , a suffix that reminds date and time in the form YYYY-MM-DDThh-mm and the name of variable, as listed in the following table.

variable Output file name
precipitation <folder> YYYY-MM-DDThh-mm _precipitation.asc
temperature <folder> YYYY-MM-DDThh-mm _temperature.asc
relative-humidity <folder> YYYY-MM-DDThh-mm _rh.asc
solar-radiation <folder> YYYY-MM-DDThh-mm _rad.asc
net-radiation <folder> YYYY-MM-DDThh-mm _netrad.asc
wind-speed <folder> YYYY-MM-DDThh-mm _windspeed.asc
snow-water-equivalent <folder> YYYY-MM-DDThh-mm _swe.asc
soil-moisture <folder> YYYY-MM-DDThh-mm _soil-moisture.asc
runoff <folder> YYYY-MM-DDThh-mm _runoff.asc
infiltration <folder> YYYY-MM-DDThh-mm _infiltration.asc
percolation <folder> YYYY-MM-DDThh-mm _percolation.asc
actual-ET <folder> YYYY-MM-DDThh-mm _et.asc
potential-ET <folder> YYYY-MM-DDThh-mm _pet.asc


Variables

Type Visibility Attributes Name Initial
character(len=1000), public :: pathout
logical, public :: useTemplate
integer(kind=short), private :: countSteps

number of steps cumulated before exporting

integer(kind=short), private :: countVar

count number of variables active for output

type(CronTab), private :: cron
type(grid_real), private :: gridTemp

temporary grid with the same coordinate reference system of template

type(grid_real), private :: gridTemp2

temporary grid with the same coordinate reference system and spatial extent and resolution of template

type(grid_real), private :: rasterET
type(grid_real), private :: rasterInfiltration
type(grid_real), private :: rasterNetRad
type(grid_real), private :: rasterPET
type(grid_real), private :: rasterPercolation
type(grid_real), private :: rasterPrecipitation
type(grid_real), private :: rasterRH
type(grid_real), private :: rasterRad
type(grid_real), private :: rasterRunoff
type(grid_real), private :: rasterSM
type(grid_real), private :: rasterSWE
type(grid_real), private :: rasterTemperature
type(grid_real), private :: rasterTemplate
type(grid_real), private :: rasterWS
logical, private :: varOut(13)

Subroutines

public subroutine ExportMaps(time, dt, temp, precipitation, rh, radiation, netradiation, windspeed, swe, sm, runoff, infiltration, percolation, et, pet)

Update and export maps

Arguments

Type IntentOptional Attributes Name
type(DateTime), intent(in) :: time
integer(kind=short), intent(in) :: dt

time step (s)

type(grid_real), intent(in) :: temp

air temperarure (°C)

type(grid_real), intent(in) :: precipitation

precipitation rate (m/s)

type(grid_real), intent(in) :: rh

air relative humidity (0-100)

type(grid_real), intent(in) :: radiation

solar radiation (w/m2)

type(grid_real), intent(in) :: netradiation

net radiation (w/m2)

type(grid_real), intent(in) :: windspeed

wind speed (m/s)

type(grid_real), intent(in) :: swe

snow water equivalent (m)

type(grid_real), intent(in) :: sm

soil moisture (-)

type(grid_real), intent(in) :: runoff

runoff (m/s)

type(grid_real), intent(in) :: infiltration

infiltration (m/s)

type(grid_real), intent(in) :: percolation

deep percolation (m/s)

type(grid_real), intent(in) :: et

actual evapotranspiration (m/s)

type(grid_real), intent(in) :: pet

potential evapotranspiration (m/s)

public subroutine InitRasterExport(fileini, temp, precipitation, rh, radiation, netradiation, windspeed, swe, sm, runoff, infiltration, percolation, et, pet)

Initialization of raster export

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: fileini
type(grid_real), intent(in) :: temp

air temperarure (°C)

type(grid_real), intent(in) :: precipitation

precipitation rate (m/s)

type(grid_real), intent(in) :: rh

air relative humidity (0-100)

type(grid_real), intent(in) :: radiation

solar radiation (w/m2)

type(grid_real), intent(in) :: netradiation

net radiation (w/m2)

type(grid_real), intent(in) :: windspeed

wind speed (m/s)

type(grid_real), intent(in) :: swe

snow water equivalent (m)

type(grid_real), intent(in) :: sm

soil mositure (-)

type(grid_real), intent(in) :: runoff

runoff (m/s)

type(grid_real), intent(in) :: infiltration

infiltration (m/s)

type(grid_real), intent(in) :: percolation

deep percolation (m/s)

type(grid_real), intent(in) :: et

actual evapotranspiration (m/s)

type(grid_real), intent(in) :: pet

potential evapotranspiration (m/s)